Micron Document
NexusPi Git Node


Displaying Raw • Download

.github/workflows/ci.yml 2230d76a6c2f8f4d9117534fe39068d0ae8a5e05 (2230d76a) Text, 16.31 KB

T8b949e# Primary CI: lint, tests, localization, Linux build check, E2E, and native builds (dev).
T8b949e# Verify matrix steps delegate to Taskfile.yml (task lint, test:frontend, test:lang).
T8b949e#
T8b949e# The frontend bundle is built once via the reusable frontend-build workflow and
T8b949e# downloaded by downstream jobs instead of rebuilding on every runner.
T8b949e#
T8b949e# Pinned first-party actions (bump tag and SHA together when upgrading):
T8b949e# actions/checkout@v6.0.1 8e8c483db84b4bee98b60c0593521ed34d9990e8
T8b949e# actions/setup-python@v6.2.0 a309ff8b426b58ec0e2a45f0f869d46889d02405
T8b949e# actions/upload-artifact@v5.0.0 330a01c490aca151604b8cf639adc76d48f6c5d4
T8b949e# actions/download-artifact@v5.0.0 634f93cb2916e3fdff6788551b99b062d0335ce0
T8b949e# actions/setup-go@v7.0.0 b7ad1dad31e06c5925ef5d2fc7ad053ef454303e

Tff7b72nameTb4b4b4: Ta5d6ffCI

Tff7b72onTb4b4b4:
Tff7b72pushTb4b4b4:
Tff7b72branchesTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff**Ta5d6ff"
Tff7b72pull_requestTb4b4b4:
Tff7b72branchesTb4b4b4:
Tb4b4b4- Ta5d6ffmaster
Tb4b4b4- Ta5d6ffdev
Tff7b72workflow_dispatchTb4b4b4:

Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread

Tff7b72concurrencyTb4b4b4:
Tff7b72groupTb4b4b4: Ta5d6ffci-${{Ta5d6ff Ta5d6ffgithub.workflowTa5d6ff Ta5d6ff}}-${{Ta5d6ff Ta5d6ffgithub.event.pull_request.numberTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6ffgithub.refTa5d6ff Ta5d6ff}}
Tff7b72cancel-in-progressTb4b4b4: Ta5d6fftrue

Tff7b72envTb4b4b4:
Tff7b72FORCE_JAVASCRIPT_ACTIONS_TO_NODE24Tb4b4b4: Ta5d6fftrue
Tff7b72NODE_OPTIONSTb4b4b4: Ta5d6ff--max-old-space-size=8192
Tff7b72PYTHON_VERSIONTb4b4b4: Ta5d6ff"Ta5d6ff3.14Ta5d6ff"
Tff7b72NODE_VERSIONTb4b4b4: Ta5d6ff"Ta5d6ff24Ta5d6ff"
Tff7b72UV_VERSIONTb4b4b4: Ta5d6ff"Ta5d6ff0.11.15Ta5d6ff"
Tff7b72PNPM_VERSIONTb4b4b4: Ta5d6ff"Ta5d6ff11.1.2Ta5d6ff"
Tff7b72GO_VERSIONTb4b4b4: Ta5d6ff"Ta5d6ff1.24.xTa5d6ff"
Tff7b72RNS_REQUIRED_SIGNERTb4b4b4: Ta5d6ffe46112d44649266d71fe2193e00a4710

Tff7b72jobsTb4b4b4:
Tff7b72frontendTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffartifact
Tff7b72usesTb4b4b4: Ta5d6ff./.github/workflows/frontend-build.yml
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72withTb4b4b4:
Tff7b72artifact_nameTb4b4b4: Ta5d6ffmeshchatx-frontend-ci-${{Ta5d6ff Ta5d6ffgithub.run_idTa5d6ff Ta5d6ff}}-${{Ta5d6ff Ta5d6ffgithub.run_attemptTa5d6ff Ta5d6ff}}
Tff7b72retention_daysTb4b4b4: Ta5d6ff1

Tff7b72verifyTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.task.nameTa5d6ff Ta5d6ff}}
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-latest
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.task.timeoutTa5d6ff Ta5d6ff}}
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72strategyTb4b4b4:
Tff7b72fail-fastTb4b4b4: Ta5d6fffalse
Tff7b72matrixTb4b4b4:
Tff7b72taskTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffLint
Tff7b72idTb4b4b4: Ta5d6fflint
Tff7b72timeoutTb4b4b4: Ta5d6ff45
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffFrontendTa5d6ff Ta5d6fftests
Tff7b72idTb4b4b4: Ta5d6fffrontend-tests
Tff7b72timeoutTb4b4b4: Ta5d6ff45
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffLocalizationTa5d6ff Ta5d6fftests
Tff7b72idTb4b4b4: Ta5d6fflang-tests
Tff7b72timeoutTb4b4b4: Ta5d6ff20

Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffenvironment
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-dev-environment
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PYTHON_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72uv-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.UV_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72node-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.NODE_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72pnpm-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PNPM_VERSIONTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffmatrixTa5d6ff Ta5d6fftask
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72set -euo pipefail
Tff7b72case "${{ matrix.task.id }}" in
Tff7b72lint)
Tff7b72task lint
Tff7b72;;
Tff7b72frontend-tests)
Tff7b72task test:frontend
Tff7b72;;
Tff7b72lang-tests)
Tff7b72task test:lang
Tff7b72;;
Tff7b72*)
Tff7b72echo "Unknown matrix task: ${{ matrix.task.id }}" >&2
Tff7b72exit 1
Tff7b72;;
Tff7b72esac

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6ffworkspaceTa5d6ff Ta5d6ffclean
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/verify-workspace-clean

Tff7b72visualiser-wasmTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffVisualiserTa5d6ff Ta5d6ffWASMTa5d6ff Ta5d6ff(Go)
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-latest
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff15
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffGo
Tff7b72usesTb4b4b4: Ta5d6ffactions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
Tff7b72withTb4b4b4:
Tff7b72go-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.GO_VERSIONTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetupTa5d6ff Ta5d6ffTask
Tff7b72envTb4b4b4:
Tff7b72GITHUB_TOKENTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.tokenTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Ta5d6ffshTa5d6ff Ta5d6ffscripts/ci/setup-task.shTa5d6ff Ta5d6ff3.49.1

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffvisualiser-wasmTa5d6ff Ta5d6fftests
Tff7b72runTb4b4b4: Ta5d6fftaskTa5d6ff Ta5d6fftest:visualiser-wasm

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffvisualiser-wasmTa5d6ff Ta5d6ffartifacts
Tff7b72runTb4b4b4: Ta5d6fftaskTa5d6ff Ta5d6ffbuild:visualiser-wasm

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6ffintegrity.jsonTa5d6ff Ta5d6ffstamped
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72set -euo pipefail
Tff7b72test -f meshchatx/src/frontend/public/vendor/visualiser-wasm/integrity.json
Tff7b72python3 - <<'PY'
Tff7b72import json
Tff7b72from pathlib import Path
Tff7b72data = json.loads(Path("meshchatx/src/frontend/public/vendor/visualiser-wasm/integrity.json").read_text())
Tff7b72assert data.get("version") == "1.2.0", data
Tff7b72assert str(data.get("wasm", "")).startswith("sha384-"), data
Tff7b72assert str(data.get("wasmExec", "")).startswith("sha384-"), data
Tff7b72print("visualiser-wasm integrity OK", data["version"])
Tff7b72PY

Tff7b72backend-testsTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffBackendTa5d6ff Ta5d6fftestsTa5d6ff Ta5d6ff(PythonTa5d6ff Ta5d6ff3.14)Ta5d6ff Ta5d6ff-Ta5d6ff Ta5d6ffShardTa5d6ff Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.shardTa5d6ff Ta5d6ff}}Ta5d6ff Ta5d6ff/Ta5d6ff Ta5d6ff4
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-latest
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff20
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72strategyTb4b4b4:
Tff7b72fail-fastTb4b4b4: Ta5d6fffalse
Tff7b72matrixTb4b4b4:
Tff7b72shardTb4b4b4: Tb4b4b4[Te6edf30Tb4b4b4, Te6edf31Tb4b4b4, Te6edf32Tb4b4b4, Te6edf33Tb4b4b4]
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffenvironment
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-dev-environment
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PYTHON_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72uv-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.UV_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72node-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.NODE_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72pnpm-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PNPM_VERSIONTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6fftests
Tff7b72envTb4b4b4:
Tff7b72PYTEST_SHARD_INDEXTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.shardTa5d6ff Ta5d6ff}}
Tff7b72PYTEST_TOTAL_SHARDSTb4b4b4: Ta5d6ff4
Tff7b72runTb4b4b4: Ta5d6fftaskTa5d6ff Ta5d6fftest:backend

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6ffworkspaceTa5d6ff Ta5d6ffclean
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/verify-workspace-clean

Tff7b72build-checkTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffLinuxTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ffcheck
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-latest
Tff7b72needsTb4b4b4: Ta5d6fffrontend
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff60
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72envTb4b4b4:
Tff7b72FRONTEND_ARTIFACT_NAMETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffneeds.frontend.outputs.artifact_nameTa5d6ff Ta5d6ff}}
Tff7b72MESHCHATX_FRONTEND_PREBUILTTb4b4b4: Ta5d6ff"Ta5d6ff1Ta5d6ff"
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSmoke-testTa5d6ff Ta5d6ffpackageTa5d6ff Ta5d6ffbloatTa5d6ff Ta5d6ffchecker
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/verify-package-contents-smoke.sh

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffenvironment
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-dev-environment
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PYTHON_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72uv-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.UV_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72node-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.NODE_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72pnpm-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PNPM_VERSIONTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffFetchTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffartifact
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/fetch-frontend-artifact
Tff7b72withTb4b4b4:
Tff7b72artifact-nameTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.FRONTEND_ARTIFACT_NAMETa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCompileTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffsources
Tff7b72runTb4b4b4: Ta5d6fftaskTa5d6ff Ta5d6ffcompile

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ff(cx_Freeze)
Tff7b72runTb4b4b4: Ta5d6ffpnpmTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffbuild-backend

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6ffbleakTa5d6ff Ta5d6ffbundledTa5d6ff Ta5d6ffinTa5d6ff Ta5d6fffrozenTa5d6ff Ta5d6ffbackend
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-verify-frozen-bleak.shTa5d6ff Ta5d6ffbuild/exe

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6ffFSTa5d6ff Ta5d6ffsandboxTa5d6ff Ta5d6ffmodulesTa5d6ff Ta5d6ffbundledTa5d6ff Ta5d6ffinTa5d6ff Ta5d6fffrozenTa5d6ff Ta5d6ffbackend
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-verify-frozen-sandbox.shTa5d6ff Ta5d6ffbuild/exe

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6fffrozenTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffimportTa5d6ff Ta5d6ffruntime
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-verify-frozen-runtime.shTa5d6ff Ta5d6ffbuild/exe

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6fffrozenTa5d6ff Ta5d6ffpycodec2/libcodec2Ta5d6ff Ta5d6fflayout
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-verify-frozen-codec2.shTa5d6ff Ta5d6ffbuild/exe

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6fffrozenTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffhasTa5d6ff Ta5d6ffnoTa5d6ff Ta5d6ffpackageTa5d6ff Ta5d6ffbloat
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/verify-package-contents.shTa5d6ff Ta5d6fffrozenTa5d6ff Ta5d6ffbuild/exe

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6ffworkspaceTa5d6ff Ta5d6ffclean
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/verify-workspace-clean

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffUploadTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffbuild-checkTa5d6ff Ta5d6ffartifacts
Tff7b72usesTb4b4b4: Ta5d6ffactions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
Tff7b72withTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffmeshchatx-linux-build-check-${{Ta5d6ff Ta5d6ffgithub.ref_nameTa5d6ff Ta5d6ff}}-${{Ta5d6ff Ta5d6ffgithub.run_idTa5d6ff Ta5d6ff}}
Tff7b72pathTb4b4b4: Tb4b4b4|
Tff7b72meshchatx/public/
Tff7b72build/exe/
Tff7b72if-no-files-foundTb4b4b4: Ta5d6ffwarn

Tff7b72validate-build-artifactTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffValidateTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ffartifact
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-latest
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff15
Tff7b72needsTb4b4b4: Ta5d6ffbuild-check
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffDownloadTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffbuild-checkTa5d6ff Ta5d6ffartifact
Tff7b72usesTb4b4b4: Ta5d6ffactions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0
Tff7b72withTb4b4b4:
Tff7b72patternTb4b4b4: Ta5d6ffmeshchatx-linux-build-check-*-${{Ta5d6ff Ta5d6ffgithub.run_idTa5d6ff Ta5d6ff}}
Tff7b72pathTb4b4b4: Ta5d6ff.artifacts/linux-build-check
Tff7b72merge-multipleTb4b4b4: Ta5d6fftrue

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffValidateTa5d6ff Ta5d6ffartifactTa5d6ff Ta5d6ffcontents
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72set -euo pipefail
Tff7b72test -d ".artifacts/linux-build-check/meshchatx/public"
Tff7b72test -d ".artifacts/linux-build-check/build/exe"
Tff7b72test -n "$(ls -A .artifacts/linux-build-check/meshchatx/public)"
Tff7b72test -n "$(ls -A .artifacts/linux-build-check/build/exe)"
Tff7b72bash scripts/ci/github-verify-frozen-bleak.sh \
Tff7b72.artifacts/linux-build-check/build/exe
Tff7b72bash scripts/ci/github-verify-frozen-sandbox.sh \
Tff7b72.artifacts/linux-build-check/build/exe
Tff7b72bash scripts/ci/github-verify-frozen-runtime.sh \
Tff7b72.artifacts/linux-build-check/build/exe
Tff7b72bash scripts/ci/github-verify-frozen-codec2.sh \
Tff7b72.artifacts/linux-build-check/build/exe
Tff7b72bash scripts/ci/verify-package-contents.sh frozen \
Tff7b72.artifacts/linux-build-check/build/exe
Tff7b72echo "Linux build artifact download + content validation passed."

Tff7b72native-buildTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffNativeTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ff(${{Ta5d6ff Ta5d6ffmatrix.labelTa5d6ff Ta5d6ff}})
Tff7b72ifTb4b4b4: Tb4b4b4>Tb4b4b4-
Tff7b72github.ref == 'refs/heads/dev' ||
Tff7b72(github.event_name == 'pull_request' && github.base_ref == 'dev')
Tff7b72needsTb4b4b4: Ta5d6fffrontend
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72strategyTb4b4b4:
Tff7b72fail-fastTb4b4b4: Ta5d6fffalse
Tff7b72matrixTb4b4b4:
Tff7b72includeTb4b4b4:
Tb4b4b4- Tff7b72osTb4b4b4: Ta5d6ffwindows-latest
Tff7b72labelTb4b4b4: Ta5d6ffwindows
Tff7b72timeoutTb4b4b4: Ta5d6ff120
Tff7b72build_scriptTb4b4b4: Ta5d6ffscripts/ci/github-build-windows.sh
Tb4b4b4- Tff7b72osTb4b4b4: Ta5d6ffmacos-latest
Tff7b72labelTb4b4b4: Ta5d6ffmacos
Tff7b72timeoutTb4b4b4: Ta5d6ff180
Tff7b72build_scriptTb4b4b4: Ta5d6ffscripts/ci/github-build-macos.sh
Tff7b72runs-onTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.osTa5d6ff Ta5d6ff}}
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.timeoutTa5d6ff Ta5d6ff}}
Tff7b72defaultsTb4b4b4:
Tff7b72runTb4b4b4:
Tff7b72shellTb4b4b4: Ta5d6ffbash
Tff7b72envTb4b4b4:
Tff7b72FRONTEND_ARTIFACT_NAMETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffneeds.frontend.outputs.artifact_nameTa5d6ff Ta5d6ff}}
Tff7b72MESHCHATX_FRONTEND_PREBUILTTb4b4b4: Ta5d6ff"Ta5d6ff1Ta5d6ff"
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffUV
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-python-uv
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PYTHON_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72uv-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.UV_VERSIONTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffNodeTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffpnpm
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-node-pnpm
Tff7b72withTb4b4b4:
Tff7b72node-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.NODE_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72pnpm-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PNPM_VERSIONTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffdependencies
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-install-deps.sh

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffRosettaTa5d6ff Ta5d6ff(AppleTa5d6ff Ta5d6ffSilicon)
Tff7b72ifTb4b4b4: Ta5d6ffmatrix.labelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'macos'
Tff7b72runTb4b4b4: Ta5d6ff/usr/sbin/softwareupdateTa5d6ff Ta5d6ff--install-rosettaTa5d6ff Ta5d6ff--agree-to-licenseTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6fftrue

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffEnsureTa5d6ff Ta5d6ffx86_64Ta5d6ff Ta5d6ffHomebrewTa5d6ff Ta5d6ff(/usr/local)Ta5d6ff Ta5d6ffforTa5d6ff Ta5d6ffuniversalTa5d6ff Ta5d6ffslice
Tff7b72ifTb4b4b4: Ta5d6ffmatrix.labelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'macos'
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-ensure-macos-x86-64-homebrew.sh

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffx64Ta5d6ff Ta5d6ffforTa5d6ff Ta5d6ffcx_FreezeTa5d6ff Ta5d6ffuniversalTa5d6ff Ta5d6ffslice
Tff7b72idTb4b4b4: Ta5d6ffpython_x64
Tff7b72ifTb4b4b4: Ta5d6ffmatrix.labelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'macos'
Tff7b72usesTb4b4b4: Ta5d6ffactions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PYTHON_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72architectureTb4b4b4: Ta5d6ffx64
Tff7b72update-environmentTb4b4b4: Ta5d6fffalse

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffx86_64Ta5d6ff Ta5d6ffcodec2Ta5d6ff Ta5d6ffforTa5d6ff Ta5d6ffpycodec2Ta5d6ff Ta5d6ff(universalTa5d6ff Ta5d6ffslice)
Tff7b72ifTb4b4b4: Ta5d6ffmatrix.labelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'macos'
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72set -euo pipefail
Tff7b72arch -x86_64 /usr/local/bin/brew install codec2

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffRustTa5d6ff Ta5d6ffx86_64-apple-darwinTa5d6ff Ta5d6fftargetTa5d6ff Ta5d6ff(cbor2Ta5d6ff Ta5d6ffx64Ta5d6ff Ta5d6ffslice)
Tff7b72ifTb4b4b4: Ta5d6ffmatrix.labelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'macos'
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-macos-rust-x64-target.sh

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffprojectTa5d6ff Ta5d6ffdepsTa5d6ff Ta5d6ffintoTa5d6ff Ta5d6ffx64Ta5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ff(macTa5d6ff Ta5d6ffuniversalTa5d6ff Ta5d6ffcx_Freeze)
Tff7b72ifTb4b4b4: Ta5d6ffmatrix.labelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'macos'
Tff7b72envTb4b4b4:
Tff7b72PY_X64Tb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.python_x64.outputs.python-pathTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-install-macos-x64-python-deps.sh

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffFetchTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffartifact
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/fetch-frontend-artifact
Tff7b72withTb4b4b4:
Tff7b72artifact-nameTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.FRONTEND_ARTIFACT_NAMETa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffdistributables
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ff"${{Ta5d6ff Ta5d6ffmatrix.build_scriptTa5d6ff Ta5d6ff}}"

Tff7b72e2eTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffE2ETa5d6ff Ta5d6ffsmoke
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-latest
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff20
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffenvironment
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-dev-environment
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PYTHON_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72uv-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.UV_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72node-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.NODE_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72pnpm-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PNPM_VERSIONTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffPlaywrightTa5d6ff Ta5d6ffsmokeTa5d6ff Ta5d6ffE2E
Tff7b72runTb4b4b4: Ta5d6ffbashTa5d6ff Ta5d6ffscripts/ci/github-e2e.sh

Tff7b72self-checkTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffHeadlessTa5d6ff Ta5d6ffSelf-CheckTa5d6ff Ta5d6ff(${{Ta5d6ff Ta5d6ffmatrix.osTa5d6ff Ta5d6ff}})
Tff7b72runs-onTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.osTa5d6ff Ta5d6ff}}
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff15
Tff7b72strategyTb4b4b4:
Tff7b72fail-fastTb4b4b4: Ta5d6fffalse
Tff7b72matrixTb4b4b4:
Tff7b72osTb4b4b4: Tb4b4b4[Te6edf3ubuntu-latestTb4b4b4, Te6edf3macos-latestTb4b4b4, Te6edf3windows-latestTb4b4b4]
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffenvironment
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-dev-environment
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PYTHON_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72uv-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.UV_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72node-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.NODE_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72pnpm-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffenv.PNPM_VERSIONTa5d6ff Ta5d6ff}}
Tff7b72install-taskTb4b4b4: Ta5d6ff"Ta5d6fffalseTa5d6ff"

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffheadlessTa5d6ff Ta5d6ffsystemTa5d6ff Ta5d6ffself-check
Tff7b72shellTb4b4b4: Ta5d6ffbash
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72# Exercises storage_lock_good (native flock/msvcrt + soft ENOSYS
Tff7b72# fallback) and the rest of SELF_CHECK_LABELS on each OS.
Tff7b72# Overall exit may be non-zero when optional host-local checks
Tff7b72# fail (missing Reticulum config, identity fixtures). Gate on
Tff7b72# the checks this job cares about via grep.
Tff7b72set -o pipefail
Tff7b72uv run python -m meshchatx.meshchat --self-check --headless 2>&1 | tee self-check-out.txt || true
Tff7b72grep -E '^\[OK\][[:space:]]+Storage Lock' self-check-out.txt
Tff7b72grep -E '^\[OK\][[:space:]]+FS Sandbox Modules' self-check-out.txt
Tff7b72grep -E '^\[OK\][[:space:]]+HTTP Server Security' self-check-out.txt

Served by rngit 1.5.2 - Generated in 0.03s